home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Atari Compendium
/
The Atari Compendium (Toad Computers) (1994).iso
/
files
/
umich
/
network
/
mail
/
mail110.lzh
/
MAILER.H
< prev
next >
Wrap
C/C++ Source or Header
|
1994-02-20
|
7KB
|
213 lines
#ifndef __MAIL_H
#define __MAILER_H
// $Id: mailer.h,v 1.5 1994/02/20 19:15:22 gbj Exp user $
/* $Log: mailer.h,v $
* Revision 1.5 1994/02/20 19:15:22 gbj
* Updated global var comments.
*
* Revision 1.4 1994/02/20 19:12:52 gbj
* Added alias global var.
*
* Revision 1.3 1994/02/08 23:31:16 gbj
* First public release.
*
* Revision 1.2 1994/02/08 03:07:38 gbj
* Fixed Log commenting.
*
* Revision 1.1 1994/02/08 03:06:26 gbj
* Initial revision
*
*/
//=========================================================
//
// mailer.tos
//
// A simple mailer for use with NOS on the Atart ST.
//
// Written by G B Judd, December 1993 (c) G B Judd 1993, 1994.
//
// email: gjudd@siward.demon.co.uk
// gjudd@cix.compulink.co.uk
//
//
// This program is supplied under the FSF 'Copyleft' conditions.
// See the file COPYING.FSF.
//
// mailer.tos is supplied "as is" without any warranty of any kind.
// You use it ENTIRELY AT YOUR OWN RISK. I do not accept ANY
// responsibility for its use or misuse.
//
// You can send bug reports to one, or both, of the email addresses
// above. I cannot guarantee to respond to any bug report or
// suggestion for improvement.
//
// You have the right to modify the source of this program any way
// you like bit I would appreciate you indicating what you have done,
// by whom and when in the Modification Section below.
//
// I would also appreciate being informed of what you have done.
//
// I shall not be responsible for any modifications carried out
// whether by me or otherwise and it is entirely my right to determine
// whether any modification was carried out by me.
//
// MODIFICATION SECTION
//
// Date Who Version
//
// 931220 G B Judd 1.0
// Initial Version
//
// 940109 G B Judd 1.1
// Fixed problems with quoting messages, bumping
// message number when reading a message, and
// scanning Reply_To:/From: for <....>
//
// 940112 G B Judd 1.2
// Fixed looping problem in list.c, response
// to Continue was incorrect.
//
// 940112 G B Judd 1.3
// Completely changed the processing of the From
// flag line. Made it as simplistic as possible
// because I can't be bothered dealing with the
// various formats that it can be - will have to
// handle this properly sometime. This means that
// it is possible that a line within the mail body
// starting 'From ' will be treated as a header.
//
// 940208 G B Judd 1.4
// Fixed problem where quoted header lines which
// did not have a > in front of them were being
// treated as proper header lines in loadix.
//
// 940208 G B Judd 1.5
// Changed VERSION to reflect RCS revision level
// of main.c
//
// 940208 G B Judd 1.6
// Added new command '\n' which reads the next
// UNREAD message. The mailbox index is always
// searched from 0 to maxmsgno. If an UNREAD
// message is found, it is shown and then its
// status is changed to READ. The current
// message pointer is updated to this message.
//
// 940208 G B Judd 1.7
// First which can be released into the Public Domain.
//
// 940211 G B Judd 1.8
// Enabled blinking cursor.
//
// 940214 G B Judd 1.9
// Incorporated A K Jones modifications to
// maintain an outgoing mail log.
//
// 940220 G B Judd 1.10
// Added mail aliasing.
//=========================================================
extern char VERSION[];
#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <dos.h>
#include <error.h>
#include <osbind.h>
#include <time.h>
#include <sys/types.h>
#include <sys/stat.h>
#ifndef TRUE
# define TRUE 1
#endif
#ifndef FALSE
# define FALSE 0
#endif
//=========================================================
// DATA STRUCTURES
//=========================================================
// Runtime mailbox index
typedef struct MAILIX
{
int msgno; // message number within mbox
int rflag; // 0=not read, !0=read;
int dflag; // 0=not marked, !0=marked for delete
char sender[128]; // Sender Id, truncated to 50 chars
char subject[128]; // Subject, truncated to 28 chars
char msgdate[13]; // dd mmm yy
char replyto[128]; // Reply-To: or From:
long fpos; // Start byte of FLAG line for this message
} MAILIX;
typedef enum COMMAND
{
BAD=0, DELETE, MAIL, SAVE, WRITE, MAILFILE, REPLY, FORWARD,
UNDELETE, NEXT, PREV, PRINT, HEADER, LIST, NEW, READ, QUIT, QUITX,
HELP, UNREAD
} COMMAND;
// defined in storage.c
extern MAILIX mailix[]; // Runtime mailbox index
// YUK,YUK,YUK - loads of global variables...
// Should be in a structure so that a pointer to it can be passed
// around - may do this one day!
// All defined in storage.c
extern int maxmsgno; // Last used element in mailix[]
extern char mailpath[]; // Full pathname of mail directory
extern char mqueuepath[]; // Full pathname of mqueue directory
extern char mbox[]; // Full pathname of current mailbox
extern char sequence[]; // Full pathname of sequence file
extern char txt[]; // Full pathname of .txt file
extern char wrk[]; // Full pathname of .wrk file
extern char tmp[]; // Full pathname of .tmp file
extern char host[]; // Hostname
extern char reply[]; // Reply-To:
extern char name[]; // Full-name
extern char edit[]; // Full pathname of your editor
extern char from[]; // From:
extern char user[]; // User mailbox id
extern char mail[]; // Path to dir containing mail/mqueue dirs
extern char sig[]; // Path to your signature file
extern char log[]; // Path to your outgoing mail log
extern char alias[]; // Path to your mail alias file
extern FILE *mfd; // Mailbox fd
extern FILE *sfd; // Sequence fd
extern FILE *tfd; // .txt fd
extern FILE *wfd; // .wrk fd
extern FILE *xfd; // .tmp fd
extern int cmsg; // Current message #
//=========================================================
// PROTOTYPES
//=========================================================
void main(void);
void init(char *version);
int loadix(char *user);
void showix(int from_msg, int cur_msg);
COMMAND getcmd(int *msgno, char *user, char *file);
void mark(int msg, int delete);
void mailto(char *user, char *file);
void saveto(char *file, int header);
void replyto(int msg);
void forwardto(int msg, char *user);
void bump(int direction);
void listqueue(void);
void newmbox(char *mbox);
void quit(int update);
void help(void);
#endif